import { type ExtractPropTypes } from 'vue';

export const inputNumberProps = Object.assign(
  {},
  {
    modelValue: {
      type: [Number, String],
      default: 0,
    },
    /** 最小值 */
    min: {
      type: Number,
      default: -Infinity,
    },
    /** 最大值 */
    max: {
      type: Number,
      default: Infinity,
    },
    /** 小数点位数 */
    precision: {
      type: Number,
      default: 0,
    },
    /** 是否禁用 */
    disabled: {
      type: Boolean,
      default: false,
    },
    /** 是否显示清除按钮 */
    clearable: {
      type: Boolean,
      default: false,
    },
    /** 输入框占位文本 */
    placeholder: {
      type: String,
      default: '',
    },
  }
);

export type InputNumberProps = ExtractPropTypes<typeof inputNumberProps>;
